/* 
  1.给输入框绑定 值改变事件 
    1.获取输入框的值
    2.合法性判断
    3.检验通过后 把输入框的值发送到后台
    4.把返回的数据打印到页面上
  2.防抖操作 定时器实现 节流
    0.防抖 一般用在输入框 防止重复输入数据 重复发送请求
    0.节流 一般用于页面的下拉上拉 （比如上拉加载上一页）
    1.定义一个全局定时器id

*/
import {
  request
} from "../../request/request.js";
import regeneratorRuntime from "../../lib/runtime/runtime.js";
Page({

  data: {
    goods: [],
    //取消 按钮 是否隐藏
    isFocus: false,
    //输入框的值
    inputValue:""
  },
  TimeId: -1,
  //输入框的值改变了 这个时间就会触发
  handleInput(e) {
    //1.获取输入框的值
    const {
      value
    } = e.detail;
    //2.检测合法性
    if (!value.trim()) {
      this.setData({
        goods: [],
        isFocus: false
      })
      //不合法
      return;
    }
    //3.合法 准备发送请求获取数据
    this.setData({
      isFocus: true
    })
    clearTimeout(this.TimeId);
    this.TimeId = setTimeout(() => {
      this.qsearch(value);
    }, 1000);
  },
  //发送请求 获取建议数据
  async qsearch(query) {
    const res = await request({
      url: "/goods/qsearch",
      data: {
        query
      }
    });
    console.log(res);
    this.setData({
      goods: res
    })
  },
  //点击 取消 按钮
  handleCancel() {
    this.setData({
      inputValue:"",
      isFocus:false,
      goods:[]
    })
  }
})